package mx.edu.itschapala.sistemas.septimo.control;

import mx.edu.itschapala.sistemas.septimo.modelo.*;
import java.util.*;
import mx.edu.itschapala.sistemas.septimo.vista.enumeracion.TipoBusqueda;

public class ProductoLnLista implements ProductoLnLocal {

    private List<Producto> listaProductos = new ArrayList<Producto>();
    private Producto producto;

    public void registrar(Producto producto) {

        listaProductos.add(producto);

    }

    public void modificar(Producto producto) {
        int x = 0;
        Producto papi = null;
        for (Producto p : listaProductos) {

            if (p.getCodigo() == producto.getCodigo()) {

                papi = p;
                break;
            }
            x++;

        }

        listaProductos.set(listaProductos.indexOf(papi), producto);

    }

    public void eliminar(Producto producto) {
//int x=0;
        for (Producto p : listaProductos) {

            if (p.getCodigo() == producto.getCodigo()) {
                producto = p;
            }
            //     x ++;
            listaProductos.remove(producto);

        }

    }

    public Producto buscarPorCodigo(int codigo) {

        for (Producto p : listaProductos) {

            if (p.getCodigo() == codigo) {
                producto = p;
                break;
            }

        }

        return producto;

    }

    public List<Producto> getTodos() {

        return listaProductos;
    }
    public List<Producto> getPorNombre(String Nombre, TipoBusqueda criterio) {
        List<Producto> tmp = new ArrayList<Producto>();
        switch (criterio) {
            case INICIA:
                for (Producto p : listaProductos) {
                    if (p.getNombre().startsWith(Nombre)) {
                        tmp.add(p);
                    }
                }
                break;
            case CONTIENE:
                for (Producto p : listaProductos) {
                    if (p.getNombre().contains(Nombre)) {
                        tmp.add(p);
                    }
                }
                break;

        }
        return tmp;
    }

}
